package com.jrx.anytxn.transaction.entity;

import java.math.BigDecimal;
import java.util.Date;

/**
 *  
 * 表:tl_payment_allocation_log 
 * @author mac 
 * @date 2019-11-21 
 */
public class TlPaymentAllocationLog {
    /**
     * 主键
     * 表字段:id
     */
    private Long id;

    /**
     * 租戶id
     * 表字段:tenant_id
     */
    private String tenantId;

    /**
     * 账户id
     * 表字段:account_id
     */
    private String accountId;

    /**
     * 机构号
     * 表字段:organization_id
     */
    private String organizationId;

    /**
     * 还款类型(pay = 正常还款 prepay = 提前还款  prepay curr = 提前还当期 pretermination = 提前结清 overdue = 逾期还款)
     * 表字段:payment_type
     */
    private String paymentType;

    /**
     * 产品id
     * 表字段:product_id
     */
    private String productId;

    /**
     * 账户类型(08 = 还款交易账户  09 = 还款交易子交易账户)
     * 表字段:account_type
     */
    private String accountType;

    /**
     * 交易码
     * 表字段:txn_code
     */
    private String txnCode;

    /**
     * 还款流水号	
     * 表字段:seq_no
     */
    private String seqNo;

    /**
     * 客户id
     * 表字段:customer_id
     */
    private String customerId;

    /**
     * 贷款id	
     * 表字段:loan_id
     */
    private String loanId;

    /**
     * 第几期
     * 表字段:billing_tenor
     */
    private Integer billingTenor;

    /**
     * 入账金额
     * 表字段:posting_amount
     */
    private BigDecimal postingAmount;

    /**
     * 交易时间
     * 表字段:posting_date
     */
    private Date postingDate;

    /**
     * 联合贷标识(0 = 否 1 = 是)
     * 表字段:joint_loan_flag
     */
    private String jointLoanFlag;

    /**
     * 兜底模式(0 = 我行  1 = 资金源  2 = 合作方 3 = 共享)
     * 表字段:reveal_mobel
     */
    private String revealMobel;

    /**
     * 资金源id
     * 表字段:fund_id
     */
    private String fundId;

    /**
     * 合作方id	
     * 表字段:partner_id
     */
    private String partnerId;

    /**
     * 代偿标志
     * 表字段:compensatory_flag
     */
    private String compensatoryFlag;

    /**
     * 总期数
     * 表字段:total_tenor
     */
    private Integer totalTenor;

    /**
     * 贷款期限天数
     * 表字段:total_days
     */
    private Integer totalDays;

    /**
     * 会计状态(0=正常 1=逾期 2=呆滞 3=呆账)
     * 表字段:accounting_phase
     */
    private String accountingPhase;

    /**
     * 非应记状态(0=应计 1=非应计)
     * 表字段:non_accruals_flag
     */
    private String nonAccrualsFlag;

    /**
     * 五级分类(0=正常 1=关注 2=次级 3=可疑 4=损失)
     * 表字段:loan_classify
     */
    private String loanClassify;

    /**
     * 原始账户id
     * 表字段:original_account_id
     */
    private String originalAccountId;

    /**
     * 关联账户id
     * 表字段:connect_account_id
     */
    private String connectAccountId;

    /**
     * 关联账户类型
     * 表字段:connect_account_type
     */
    private String connectAccountType;

    /**
     * 渠道id
     * 表字段:channel
     */
    private String channel;

    /**
     * 创建时间
     * 表字段:create_time
     */
    private Date createTime;

    /**
     * 最后更新时间
     * 表字段:update_time
     */
    private Date updateTime;

    /**
     * 最后更新操作员
     * 表字段:update_by
     */
    private String updateBy;

    /**
     * 记录版本号
     * 表字段:record_version_number
     */
    private Integer recordVersionNumber;

    /**
     * 获取主键
     * @return id Long
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置主键
     * @param id 主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取租戶id
     * @return tenantId String
     */
    public String getTenantId() {
        return tenantId;
    }

    /**
     * 设置租戶id
     * @param tenantId 租戶id
     */
    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    /**
     * 获取账户id
     * @return accountId String
     */
    public String getAccountId() {
        return accountId;
    }

    /**
     * 设置账户id
     * @param accountId 账户id
     */
    public void setAccountId(String accountId) {
        this.accountId = accountId;
    }

    /**
     * 获取机构号
     * @return organizationId String
     */
    public String getOrganizationId() {
        return organizationId;
    }

    /**
     * 设置机构号
     * @param organizationId 机构号
     */
    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    /**
     * 获取还款类型(pay = 正常还款 prepay = 提前还款  prepay curr = 提前还当期 pretermination = 提前结清 overdue = 逾期还款)
     * @return paymentType String
     */
    public String getPaymentType() {
        return paymentType;
    }

    /**
     * 设置还款类型(pay = 正常还款 prepay = 提前还款  prepay curr = 提前还当期 pretermination = 提前结清 overdue = 逾期还款)
     * @param paymentType 还款类型(pay = 正常还款 prepay = 提前还款  prepay curr = 提前还当期 pretermination = 提前结清 overdue = 逾期还款)
     */
    public void setPaymentType(String paymentType) {
        this.paymentType = paymentType;
    }

    /**
     * 获取产品id
     * @return productId String
     */
    public String getProductId() {
        return productId;
    }

    /**
     * 设置产品id
     * @param productId 产品id
     */
    public void setProductId(String productId) {
        this.productId = productId;
    }

    /**
     * 获取账户类型(08 = 还款交易账户  09 = 还款交易子交易账户)
     * @return accountType String
     */
    public String getAccountType() {
        return accountType;
    }

    /**
     * 设置账户类型(08 = 还款交易账户  09 = 还款交易子交易账户)
     * @param accountType 账户类型(08 = 还款交易账户  09 = 还款交易子交易账户)
     */
    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }

    /**
     * 获取交易码
     * @return txnCode String
     */
    public String getTxnCode() {
        return txnCode;
    }

    /**
     * 设置交易码
     * @param txnCode 交易码
     */
    public void setTxnCode(String txnCode) {
        this.txnCode = txnCode;
    }

    /**
     * 获取还款流水号	
     * @return seqNo String
     */
    public String getSeqNo() {
        return seqNo;
    }

    /**
     * 设置还款流水号	
     * @param seqNo 还款流水号	
     */
    public void setSeqNo(String seqNo) {
        this.seqNo = seqNo;
    }

    /**
     * 获取客户id
     * @return customerId String
     */
    public String getCustomerId() {
        return customerId;
    }

    /**
     * 设置客户id
     * @param customerId 客户id
     */
    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }

    /**
     * 获取贷款id	
     * @return loanId String
     */
    public String getLoanId() {
        return loanId;
    }

    /**
     * 设置贷款id	
     * @param loanId 贷款id	
     */
    public void setLoanId(String loanId) {
        this.loanId = loanId;
    }

    /**
     * 获取第几期
     * @return billingTenor Integer
     */
    public Integer getBillingTenor() {
        return billingTenor;
    }

    /**
     * 设置第几期
     * @param billingTenor 第几期
     */
    public void setBillingTenor(Integer billingTenor) {
        this.billingTenor = billingTenor;
    }

    /**
     * 获取入账金额
     * @return postingAmount BigDecimal
     */
    public BigDecimal getPostingAmount() {
        return postingAmount;
    }

    /**
     * 设置入账金额
     * @param postingAmount 入账金额
     */
    public void setPostingAmount(BigDecimal postingAmount) {
        this.postingAmount = postingAmount;
    }

    /**
     * 获取交易时间
     * @return postingDate Date
     */
    public Date getPostingDate() {
        return postingDate;
    }

    /**
     * 设置交易时间
     * @param postingDate 交易时间
     */
    public void setPostingDate(Date postingDate) {
        this.postingDate = postingDate;
    }

    /**
     * 获取联合贷标识(0 = 否 1 = 是)
     * @return jointLoanFlag String
     */
    public String getJointLoanFlag() {
        return jointLoanFlag;
    }

    /**
     * 设置联合贷标识(0 = 否 1 = 是)
     * @param jointLoanFlag 联合贷标识(0 = 否 1 = 是)
     */
    public void setJointLoanFlag(String jointLoanFlag) {
        this.jointLoanFlag = jointLoanFlag;
    }

    /**
     * 获取兜底模式(0 = 我行  1 = 资金源  2 = 合作方 3 = 共享)
     * @return revealMobel String
     */
    public String getRevealMobel() {
        return revealMobel;
    }

    /**
     * 设置兜底模式(0 = 我行  1 = 资金源  2 = 合作方 3 = 共享)
     * @param revealMobel 兜底模式(0 = 我行  1 = 资金源  2 = 合作方 3 = 共享)
     */
    public void setRevealMobel(String revealMobel) {
        this.revealMobel = revealMobel;
    }

    /**
     * 获取资金源id
     * @return fundId String
     */
    public String getFundId() {
        return fundId;
    }

    /**
     * 设置资金源id
     * @param fundId 资金源id
     */
    public void setFundId(String fundId) {
        this.fundId = fundId;
    }

    /**
     * 获取合作方id	
     * @return partnerId String
     */
    public String getPartnerId() {
        return partnerId;
    }

    /**
     * 设置合作方id	
     * @param partnerId 合作方id	
     */
    public void setPartnerId(String partnerId) {
        this.partnerId = partnerId;
    }

    /**
     * 获取代偿标志
     * @return compensatoryFlag String
     */
    public String getCompensatoryFlag() {
        return compensatoryFlag;
    }

    /**
     * 设置代偿标志
     * @param compensatoryFlag 代偿标志
     */
    public void setCompensatoryFlag(String compensatoryFlag) {
        this.compensatoryFlag = compensatoryFlag;
    }

    /**
     * 获取总期数
     * @return totalTenor Integer
     */
    public Integer getTotalTenor() {
        return totalTenor;
    }

    /**
     * 设置总期数
     * @param totalTenor 总期数
     */
    public void setTotalTenor(Integer totalTenor) {
        this.totalTenor = totalTenor;
    }

    /**
     * 获取贷款期限天数
     * @return totalDays Integer
     */
    public Integer getTotalDays() {
        return totalDays;
    }

    /**
     * 设置贷款期限天数
     * @param totalDays 贷款期限天数
     */
    public void setTotalDays(Integer totalDays) {
        this.totalDays = totalDays;
    }

    /**
     * 获取会计状态(0=正常 1=逾期 2=呆滞 3=呆账)
     * @return accountingPhase String
     */
    public String getAccountingPhase() {
        return accountingPhase;
    }

    /**
     * 设置会计状态(0=正常 1=逾期 2=呆滞 3=呆账)
     * @param accountingPhase 会计状态(0=正常 1=逾期 2=呆滞 3=呆账)
     */
    public void setAccountingPhase(String accountingPhase) {
        this.accountingPhase = accountingPhase;
    }

    /**
     * 获取非应记状态(0=应计 1=非应计)
     * @return nonAccrualsFlag String
     */
    public String getNonAccrualsFlag() {
        return nonAccrualsFlag;
    }

    /**
     * 设置非应记状态(0=应计 1=非应计)
     * @param nonAccrualsFlag 非应记状态(0=应计 1=非应计)
     */
    public void setNonAccrualsFlag(String nonAccrualsFlag) {
        this.nonAccrualsFlag = nonAccrualsFlag;
    }

    /**
     * 获取五级分类(0=正常 1=关注 2=次级 3=可疑 4=损失)
     * @return loanClassify String
     */
    public String getLoanClassify() {
        return loanClassify;
    }

    /**
     * 设置五级分类(0=正常 1=关注 2=次级 3=可疑 4=损失)
     * @param loanClassify 五级分类(0=正常 1=关注 2=次级 3=可疑 4=损失)
     */
    public void setLoanClassify(String loanClassify) {
        this.loanClassify = loanClassify;
    }

    /**
     * 获取原始账户id
     * @return originalAccountId String
     */
    public String getOriginalAccountId() {
        return originalAccountId;
    }

    /**
     * 设置原始账户id
     * @param originalAccountId 原始账户id
     */
    public void setOriginalAccountId(String originalAccountId) {
        this.originalAccountId = originalAccountId;
    }

    /**
     * 获取关联账户id
     * @return connectAccountId String
     */
    public String getConnectAccountId() {
        return connectAccountId;
    }

    /**
     * 设置关联账户id
     * @param connectAccountId 关联账户id
     */
    public void setConnectAccountId(String connectAccountId) {
        this.connectAccountId = connectAccountId;
    }

    /**
     * 获取关联账户类型
     * @return connectAccountType String
     */
    public String getConnectAccountType() {
        return connectAccountType;
    }

    /**
     * 设置关联账户类型
     * @param connectAccountType 关联账户类型
     */
    public void setConnectAccountType(String connectAccountType) {
        this.connectAccountType = connectAccountType;
    }

    /**
     * 获取渠道id
     * @return channel String
     */
    public String getChannel() {
        return channel;
    }

    /**
     * 设置渠道id
     * @param channel 渠道id
     */
    public void setChannel(String channel) {
        this.channel = channel;
    }

    /**
     * 获取创建时间
     * @return createTime Date
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取最后更新时间
     * @return updateTime Date
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置最后更新时间
     * @param updateTime 最后更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取最后更新操作员
     * @return updateBy String
     */
    public String getUpdateBy() {
        return updateBy;
    }

    /**
     * 设置最后更新操作员
     * @param updateBy 最后更新操作员
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * 获取记录版本号
     * @return recordVersionNumber Integer
     */
    public Integer getRecordVersionNumber() {
        return recordVersionNumber;
    }

    /**
     * 设置记录版本号
     * @param recordVersionNumber 记录版本号
     */
    public void setRecordVersionNumber(Integer recordVersionNumber) {
        this.recordVersionNumber = recordVersionNumber;
    }

    private BigDecimal taxAmt;

    public BigDecimal getTaxAmt() {
        if(null == taxAmt){
            return BigDecimal.ZERO;
        }
        return taxAmt;
    }

    public void setTaxAmt(BigDecimal taxAmt) {
        this.taxAmt = taxAmt;
    }

    private String liabilityFlag;

    public String getLiabilityFlag() {
        return liabilityFlag;
    }

    public void setLiabilityFlag(String liabilityFlag) {
        this.liabilityFlag = liabilityFlag;
    }
}